# Python 趣味编程：第 12 章
# 例題 12.5 事件处理
# --------------------------
# 程序名: 12-event.py

import pygame

FPS = 60     # Frame per Second每秒帧数
LOOP = True

# 推杆的绘制函数
def draw_paddle(screen, x, y):
    pygame.draw.rect(screen, (0, 255, 255), (x, y, 40, 100))

screen = pygame.display.set_mode((640, 320))
clock = pygame.time.Clock()     # 时钟对象
paddle_x, paddle_y = (540, 100) # 推杆的初始位置
paddle_vy = 10                  # 推杆的速度

while LOOP:  # 主循环
    for event in pygame.event.get():
        # 处理“关闭”按钮
        if event.type == pygame.QUIT: LOOP = False
    clock.tick(FPS)      # 根据每秒的调用次数延时
    pressed_keys = pygame.key.get_pressed() # 获取key信息
    if pressed_keys[pygame.K_UP]:    # 上箭头被按下时
        paddle_y -= paddle_vy        # y 坐标变小
    if pressed_keys[pygame.K_DOWN]:  # 下箭头被按下时
        paddle_y += paddle_vy        # y 坐标变大
    draw_paddle(screen, paddle_x, paddle_y)  # 推杆的绘制
    pygame.display.flip()       # 画面上的反映
    screen.fill((0, 0, 0))  # 填充：不作用到下一个 flip
pygame.quit()
